1. Field of the Invention
The invention relates generally to communications and networking. More specifically, the invention relates to the usage of resources in networking devices.
2. Background of the Invention
In connection-oriented networking schema such as ATM (Asynchronous Transfer Mode), connections or xe2x80x9ccallsxe2x80x9d must be established between one information device such as a computer system or router and another. This call or connection is sometimes referred to as a xe2x80x9cvirtual circuitxe2x80x9d (VC) particularly where a specified data pipe is artificially, through software, segmented into separate data-pathways, each pathway servicing a particular VC. Often a switch acts as an intermediary to direct one or more of these VCs through a particular network node, and thus these calls are collectively referred to as SVCs (Switched Virtual Circuits).
FIG. 1 shows an exemplary wide-area networking system serviced by ATM. A wide-area network (WAN) link 120 interconnects a first network 100 with a second network 110. Each network has a plurality of nodes which may each contain switching devices that regulate data traffic to one or more user terminals. Network 100 is shown having nodes 102, 103, 104, 106 and 108, while network 110 is shown having nodes 112, 114, 116 and 118. A first user terminal 105 is connected to node 102 of network 100 while a second user terminal 115 is connected to node 118 of network 110. In order for user terminal 105 and user terminal 115 to communicate with one another, a call must first be established between them. This call may be switched through a plurality of nodes. one possible route for sending data from user terminal 105 to user terminal 115 is for data to go from node 102 to 106 to 108 and then across the WAN link to node 112 and node 118 finally reaching user terminal 115.
Similar to PSTN (Public Switched Telephone Network) communications such as telephone calls, the period of SVC call operation for a given call can be split into three distinct phases-establishment (setup), active (data transfer) and disconnect (hang-up). Once a call is established, say between user terminal 105 and user terminal 115 across a specified path, a virtual circuit will have been created and the call can proceed into the active phase where data is transferred. Once the data transfer is complete, the call can be disconnected which will release the virtual circuit.
Each node has a controller device (SVC controller) and switch which facilitates the calls through its node. The SVC controller has processing, memory and other resources to interpret, forward and process messages and initiate other messages as appropriate, while the switch ordinarily handles the physical routing of messages among nodes and user terminals.
In a wide-area network, as that shown in FIG. 1, call setup may have to proceed through an arbitrarily large and unknown number of nodes before it can be completed. FIG. 2 shows a call setup session between a first user terminal and a second user terminal that proceeds through a series of N nodes. Each of the nodes 1, 2, . . . , N have a controller device that performs, among other functions, the data link layer (Layer 2) and transport layer (Layer 3) processing and forwarding of messages. Among such messages are call setup messages. For instance, in FIG. 2, when establishing a call between user terminal 1 and user terminal 2, user terminal 1 will first initiate a setup message informing the node 1 controller that a connection wishes to established with user terminal 2. The node 1 controller sends back an acknowledgement message informing user terminal 1 that the call establishment is still in progress (call proceeding). The node 1 controller will then forward the call setup initiator message to next down-the-line node, node 2. Upon receiving the setup message, the node 2 controller responds with a call proceeding message to the node 1 controller. The node 2 controller forwards the call setup message to another node""s controller, which responds with a call proceeding message to node 2, and on and on, until reaching the second user terminal 2 which is directly accessible from node N. User terminal 2 sends a call proceeding message back to the node N controller, and after a time, when the call is connected through, the user terminal 2 sends to the node N controller a call connected message which is forwarded back through the nodes numbered one to N until reaching user terminal 1. At this point, the call is considered xe2x80x9cestablishedxe2x80x9d and the data transfer phase commences.
The above exemplifies the number of messages needed to setup a single call over N nodes. Each node""s controller would have to process and forward at least three messages to facilitate call establishment. Assuming each node is capable of supporting/switching multiple user terminals or other devices, many unique point-point calls are possible. A particular node controller may thus have to process many call setup messages. Each SVC controller has finite resources to provide these and other services, namely, message buffers, call records, CPU processing capacity, I/O bandwidth and so on which are often taxed. Thus, a high setup message arrival rate can potentially consume all of a controller""s processing and memory resources. This can result in the controller delivering degraded service to all user terminals. A high setup message arrival rate due to one terminal can thus act to degrade the service provided to all other user terminals.
What is disclosed is a method of managing congestion in a network controller having a plurality of interfaces comprising monitoring the utilization and potential utilization of resources in a due to message traffic received by the network controller, and instituting controls to limit further message traffic where the measurements exceed upper thresholds.